# CATSSSSSS

Имеем дамп файла windows 8.1 и заблокированный архив. Используя утилиту volatility, смотрим процессы для последующего дампа

```bash
sudo vol3 -f cats.vmem windows.pstree
```

![alt text](image.png)

Находим процесс, который использует **GUI**, например **explorer.exe**

Дампим процесс, используя **PID** процесса 

```bash
vol3 -f cats.vmem windows.memmap --dump --pid 3644
```

![alt text](image-1.png)

Наша цель, найти в дампе памяти процесса explorer.exe искомую картинку на экране. Для полноценного восстановления картинки, необходимо знать настоящее разрешение экрана. Для этого берет его из реестра.

```bash 
vol3 -f cats.vmem windows.registry.printkey --k "ControlSet001\Hardware Profiles\UnitedVideo\CONTROL\VIDEO" --rec | grep 'Resolution\|Bits'
```

Реестр винды хранит все разрешения экранов, которые были от начала создания, и все последующие изменения. Разрешение **1024x768** – стандартное при создании. Поэтому используем последнее паоставленное разрешение. Последнее разрешение **1718x920** **и цветность (бит/пиксель) 32**.
![alt text](image-2.png)
Восстанавливает картинку. Для открытия дампа в редакторе, добавляем расширение data. После открытия файла выставляем высоту и ширину экрана. И тип пикселя **RGB-с альфа каналом**. 
![alt text](image-3.png)

Изменяем смещения до тех пор, пока не будет видна полупрозрачная картинка нашего экрана(**342898096**). Это нужно для полного восстановления исходной картинки.

![alt text](image-4.png)

В **Windows** элементы интерфейса, пиксели хранятся с перевернутым порядком байт, поэтому **RGB** лежит в памяти как **BGR**. Сохраняем нашу картинку и восстанавливаем цвета для получения искомой картинки. Необходимо изменить **BGR** в **RGB**, можно делать в графическом редакторе либо используя скрипты для изменения местами **R** и **B**.
![alt text](image-5.png)
После запуска скрипта видим настоящий скриншот экрана
![alt text](image-6.png)
Открываем рарник при помощи пароля и получаем флаг **RDGCTF{Y0U_F1ND_M3_4ND_MY_C4T’S}**